Truyền tham số Tham số (lập trình máy tính)

Cơ chế chính xác cho việc gán đối số cho một tham số, được gọi là cơ chế truyền tham số, phụ thuộc vào chiến lược đánh giá được sử dụng cho tham số đó (thông thường là truyền giá trị (call-by-value)). Lập trình viên có thể dùng các từ khóa để đánh dấu chiến lược được lựa chọn cho từng tham số.

Truyền bằng giá trị

Trong cơ chế truyền tham số bằng giá trị (gọi tắt là truyền trị), khi chương trình con được chạy, một bản sao của tham số thực sự được gán cho tham số hình thức (sao chép giá trị). Nghĩa là mọi sửa đổi của chương trình con đối với tham số hình thức không gây ảnh hưởng tới biến được truyền vào chương trình con theo kiểu truyền tham trị.

Các tham số được truyền bằng giá trị được gọi là tham trị. Do chỉ có giá trị được truyền vào chương trình con, tham số thực sự không nhất thiết phải là một biến thông thường mà có thể là hằng giá trị, hằng biến, biểu thức trả về giá trị...

Truyền bằng biến

Trong cơ chế truyền tham số bằng biến (gọi tắt là truyền biến), khi chương trình con được chạy, tham số hình thức trở thành một tham chiếu tham số thực sự. Nghĩa là mọi sửa đổi của chương trình con đối với tham số hình thức sẽ có tác dụng với tham số thực sự. Đây được gọi là hiệu ứng phụ của chương trình con.

Các tham số được truyền bằng biến được gọi là tham biến. Ngược lại với cơ chế truyền bằng giá trị, cơ chế truyền bằng biến đòi hỏi tham số thực sự phải là một biến.

Các đối số mặc định

Một số ngôn ngữ lập trình cho phép một đối số mặc định (default argument) được cho trước một cách tường mình hay ngầm định trong phần khai báo của một chương trình con. Điều này cho phép nơi gọi bỏ qua đối số này khi gọi chương trình con đó. Nếu đối số mặc định được cho một cách tường mình, thì giá trị đó được sử dụng mỗi khi nó không được cung cấp bởi nơi gọi. Nếu đối số mặc định là ngầm định (mà đôi khi được khai báo bởi từ khóa như là "Optional" (không bắt buộc)) thì ngôn ngữ sẽ cung ứng một giá trị "ban đầu" thông dụng (như là null, tập rỗng, giá trị 0, xâu ký tự rỗng,...) nếu giá trị (của tham số) không được nơi gọi cung cấp.

Chiều dài biến đổi được của danh sách tham số

Một số ngôn ngữ cho phép các chương trình con được định nghĩa với số các đối số thay đổi được. Đối với các ngôn ngữ như vậy, các chương trình con phải duyệt qua danh mục của các đối số

Các tham số danh định

Một số ngôn ngữ lập trình cho phép các chương trình con có các tham số danh định (named parameter). Điều này cho phép mã nơi gọi chương trình con có tính tự mô tả (self-documenting) cao hơn. Nó cũng cung cấp cho nơi gọi khả năng uyển chuyển cao hơn, thường cho phép thay đổi thứ tự của các đối số hay bỏ qua một số đối số nếu cần thiết.